Cloud computing is the use of computing resources (hardware and software) which are available in a remote location and accessible over a network, such as the Internet. In some arrangements, users are able to buy these computing resources (including storage and computing power) as a utility on demand. Cloud computing entrusts remote services with a user's data, software and computation. Use of virtual computing resources can provide a number of advantages including cost advantages and/or the ability to adapt rapidly to changing computing resource needs.
The users of large computer systems may have diverse computing requirements resulting from different use cases. A cloud or compute service provider can provide various different computer systems having different types of components with varying levels of performance and/or functionality. Thus, a user can select a computer system that can potentially be more efficient at executing a particular task. For example, the compute service provider can provide systems with varying combinations of processing performance, memory performance, storage capacity or performance, and networking capacity or performance. The focus of the cloud service provider is to provide generalized hardware that can be shared by many different customers. The cloud service provider can be challenged to provide specialized computing hardware for users while keeping a healthy mix of generalized resources so that the resources can be efficiently allocated among the different users.